package listeners;

import interface_grafica.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;

import banco.Queries;

import parceiros.Parceiro;
import socios.Endereco;

public class ListenersTelaEdicaoParceiroPJ implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {

		TelaPrincipal frame = TelaPrincipal.getInstance();
		TelaEdicaoParceiroPJ tela = TelaEdicaoParceiroPJ.getInstance();
		Queries query = new Queries();

		if (e.getSource() == tela.getBtSalvar()) {

			String nome = tela.getNomeParceiroPJ();
			String data = tela.getDataFundParceiroPJ();
			String cnpj = tela.getCnpjParceiroPJ();
			String email = tela.getEmailParceiroPJ();
			String telefone = tela.getTelefoneParceiroPJ();
			int idParceiro = Integer.parseInt(tela.getIdParceiroPJ());
			String presidente = tela.getNomeRespParceiroPJ();
			String tipo = "Pessoa Juridica";

			String rua = tela.getRuaEParceiroPJ();
			String bairro = tela.getBairroEParceiroPJ();
			String numeroCasa = tela.getNumeroParceiroPJ();
			String cep = tela.getCepParceiroPJ();
			String complemento = tela.getComplementoParceiroPJ();
			String cidade = tela.getCidadeEParceiroPJ();
			int estado = tela.getEstadoEParceiroPJ().getSelectedIndex();

			Endereco endereco = new Endereco(rua, bairro, numeroCasa, telefone,
					cep, complemento, estado, cidade);

			Parceiro novoParceiro = new Parceiro(nome, endereco, data,
					idParceiro, email, cnpj, presidente, tipo);

			// INSERIR NO BANCO

			String tabela = "parceiro";

			String valores = "nome='" + novoParceiro.getNome()
					+ "', cpf_cnpj='" + novoParceiro.getCpf() + "', telefone='"
					+ novoParceiro.getEndereco().getTelefone() + "', rua='"
					+ novoParceiro.getEndereco().getRua() + "', bairro='"
					+ novoParceiro.getEndereco().getBairro() + "', complemento='"
					+ novoParceiro.getEndereco().getComplemento() + "', numero='"
					+ novoParceiro.getEndereco().getNumeroCasa() + "', cidade='"
					+ novoParceiro.getEndereco().getCidade() + "', estado='"
					+ novoParceiro.getEndereco().getEstado() + "', cep='"
					+ novoParceiro.getEndereco().getCep() + "', email='"
					+ novoParceiro.getEmail() + "', presidente='" + novoParceiro.getPresidente()
					+ "', tipo'" + novoParceiro.getTipo() + "', data='"+novoParceiro.getDataNasc()+"'";

			String condicao = "codparceiro='" + idParceiro + "'";
			try {
				query.atualizar(tabela, condicao, valores);
				JOptionPane.showMessageDialog(null,
						"Atualizacao feita com sucesso!");

			} catch (SQLException e1) {
				JOptionPane.showMessageDialog(null,
						"Erro ao realizar atualizar!", "Associex",
						javax.swing.JOptionPane.ERROR_MESSAGE);
				e1.printStackTrace();
			}
		}

		else if (e.getSource() == tela.getBtRemover()) {

			String id = tela.getIdParceiroPJ();
			String nome = tela.getNomeParceiroPJ();

			String tabela = "parceiro";
			String condicao = "nome='" + nome + "' AND codparceiro='" + id
					+ "'";

			try {
				query.remover(tabela, condicao);

				JOptionPane.showMessageDialog(null, "Removido");

				TelaConsultaSocio tela2 = TelaConsultaSocio.getInstance();

				String tabela2 = "socio";
				String condicao2 = "true";

				try {
					ResultSet rs2 = query.consultar(tabela2, condicao2);
					tela2.limpaDtm();
					if (rs2.next()) {
						while (rs2.next()) {

							String id2 = String
									.valueOf((rs2.getInt("codsocio")));
							String nome2 = rs2.getString("nome");
							String tipo2;

							if (rs2.getInt("tipoSocio") == 1) {
								tipo2 = "Diretor";
							} else {
								tipo2 = "Associado";
							}

							tela2.getDtm().addRow(
									new Object[] { id2, nome2, tipo2 });
						}
						tela2.setBounds(10, 11, 1063, 557);

						frame.getPanel().removeAll();
						frame.getPanel().add(tela2);
						frame.repaint();
						frame.validate();
					}

					else {
						frame.getPanel().removeAll();
						frame.repaint();
						frame.validate();
					}
				} catch (SQLException e1) {
					e1.printStackTrace();
				}

			} catch (SQLException e1) {
				JOptionPane.showMessageDialog(null, "Erro ao remover");
				e1.printStackTrace();
			}
		}

	}// actionPerformed

}